/**
 * Copyright &copy; 2012-2017 <a href="https://vivo.com">vivo</a> All rights reserved.
 */
package com.vivo.retail.entity;

import org.hibernate.validator.constraints.Length;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import javax.validation.constraints.NotNull;
import com.thinkgem.jeesite.common.utils.excel.annotation.ExcelField;

import com.thinkgem.jeesite.common.persistence.DataEntity;

/**
 * 串号流向Entity
 * @author jyangye
 * @version 2018-04-09
 */
public class ViDeaSnaction extends DataEntity<ViDeaSnaction> {
	
	private static final long serialVersionUID = 1L;
	private String snactionid;		// 串号流向ID
	private String snid;		// 串号ID
	private String orderid;		// 单据ID
	private String orderlistid;		// 单据明细ID
	private String ordertype;		// 单据类型
	private Date createdate;		// 建立日期
	private Date orderdate;		// 单据日期
	private String beforeswapsnid;		// 换货前串号ID
	private String sourcewarehouseid;		// sourcewarehouseid
	private String targetwarehouseid;		// targetwarehouseid
	private String snstate;		// 串号状态
	private Date beginCreatedate;		// 开始 建立日期
	private Date endCreatedate;		// 结束 建立日期
	private Date beginOrderdate;		// 开始 单据日期
	private Date endOrderdate;		// 结束 单据日期
	
	public ViDeaSnaction() {
		super();
	}

	public ViDeaSnaction(String id){
		super(id);
	}

	@Length(min=1, max=32, message="串号流向ID长度必须介于 1 和 32 之间")
	@ExcelField(title="串号流向ID", align=2, sort=10)
	public String getSnactionid() {
		return snactionid;
	}

	public void setSnactionid(String snactionid) {
		this.snactionid = snactionid;
	}
	
	@Length(min=1, max=32, message="串号ID长度必须介于 1 和 32 之间")
	@ExcelField(title="串号ID", align=2, sort=20)
	public String getSnid() {
		return snid;
	}

	public void setSnid(String snid) {
		this.snid = snid;
	}
	
	@Length(min=1, max=32, message="单据ID长度必须介于 1 和 32 之间")
	@ExcelField(title="单据ID", align=2, sort=30)
	public String getOrderid() {
		return orderid;
	}

	public void setOrderid(String orderid) {
		this.orderid = orderid;
	}
	
	@Length(min=1, max=32, message="单据明细ID长度必须介于 1 和 32 之间")
	@ExcelField(title="单据明细ID", align=2, sort=40)
	public String getOrderlistid() {
		return orderlistid;
	}

	public void setOrderlistid(String orderlistid) {
		this.orderlistid = orderlistid;
	}
	
	@Length(min=1, max=10, message="单据类型长度必须介于 1 和 10 之间")
	@ExcelField(title="单据类型", align=2, sort=50)
	public String getOrdertype() {
		return ordertype;
	}

	public void setOrdertype(String ordertype) {
		this.ordertype = ordertype;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="建立日期不能为空")
	@ExcelField(title="建立日期", align=2, sort=60)
	public Date getCreatedate() {
		return createdate;
	}

	public void setCreatedate(Date createdate) {
		this.createdate = createdate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="单据日期不能为空")
	@ExcelField(title="单据日期", align=2, sort=70)
	public Date getOrderdate() {
		return orderdate;
	}

	public void setOrderdate(Date orderdate) {
		this.orderdate = orderdate;
	}
	
	@Length(min=0, max=32, message="换货前串号ID长度必须介于 0 和 32 之间")
	@ExcelField(title="换货前串号ID", align=2, sort=80)
	public String getBeforeswapsnid() {
		return beforeswapsnid;
	}

	public void setBeforeswapsnid(String beforeswapsnid) {
		this.beforeswapsnid = beforeswapsnid;
	}
	
	@Length(min=0, max=11, message="sourcewarehouseid长度必须介于 0 和 11 之间")
	@ExcelField(title="sourcewarehouseid", align=2, sort=90)
	public String getSourcewarehouseid() {
		return sourcewarehouseid;
	}

	public void setSourcewarehouseid(String sourcewarehouseid) {
		this.sourcewarehouseid = sourcewarehouseid;
	}
	
	@Length(min=0, max=11, message="targetwarehouseid长度必须介于 0 和 11 之间")
	@ExcelField(title="targetwarehouseid", align=2, sort=100)
	public String getTargetwarehouseid() {
		return targetwarehouseid;
	}

	public void setTargetwarehouseid(String targetwarehouseid) {
		this.targetwarehouseid = targetwarehouseid;
	}
	
	@Length(min=0, max=6, message="串号状态长度必须介于 0 和 6 之间")
	@ExcelField(title="串号状态", align=2, sort=110)
	public String getSnstate() {
		return snstate;
	}

	public void setSnstate(String snstate) {
		this.snstate = snstate;
	}
	
	public Date getBeginCreatedate() {
		return beginCreatedate;
	}

	public void setBeginCreatedate(Date beginCreatedate) {
		this.beginCreatedate = beginCreatedate;
	}
	
	public Date getEndCreatedate() {
		return endCreatedate;
	}

	public void setEndCreatedate(Date endCreatedate) {
		this.endCreatedate = endCreatedate;
	}
		
	public Date getBeginOrderdate() {
		return beginOrderdate;
	}

	public void setBeginOrderdate(Date beginOrderdate) {
		this.beginOrderdate = beginOrderdate;
	}
	
	public Date getEndOrderdate() {
		return endOrderdate;
	}

	public void setEndOrderdate(Date endOrderdate) {
		this.endOrderdate = endOrderdate;
	}
		
}